Region-Based Dynamic Separation for STM Haskell
نویسندگان
چکیده
We present a design and implementation of dynamic separation in STM Haskell. Dynamic separation is a recent approach to software transactional memory (STM) that achieves strongly-atomic semantics with performance comparable to that of a weakly-atomic STM. STM Haskell, a lazy-versioning STM library for Haskell, previously supported strongly-atomic semantics via static separation, and we have found dynamic separation to be a natural extension of the library’s interface. Our implementation of dynamic separation has two novel extensions. First, we improve support for mutable data structures by providing protection regions, special objects that hold the protection state for multiple references. Second, we expand the set of protection states so that the interface is more expressive. We give a formal semantics for region-based dynamic separation and prove that a weak lazy-versioning STM supports strong atomicity (for a semantics without regions). We have evaluated the performance of our system on a suite of STM Haskell programs. We also discuss an alternate implementation that detects inconsistent protection states at run time.
منابع مشابه
HiDb: A Haskell In-Memory Relational Database
We describe our experience implementing an in-memory relational database in Haskell that supports the standard CRUD (create, read, update, delete) operations while providing the requisite ACID (atomicity, consistency, isolation, durability) guarantees. We rely on Haskell’s STM module to provide atomicity and isolation. We use a combination of STM, Haskell’s type system, and dynamic type-checkin...
متن کاملA Hybrid TM for Haskell
Much of the success of Haskell’s Software Transactional Memory (STM) can be attributed to the language’s type system and purity, which together allow transactions to be expressed safely and precisely. By construction, transactions are free from many of the perils that other systems must work hard to avoid. Users do have to work in a constrained environment as a result, but the popularity of Has...
متن کاملHaskell Transaktionen in verteilten Systemen
Das Konstrukt der Transaktions-Variablen in Concurrent Haskell erleichtert die Entwicklung von nebenläufigen Anwendungen, indem es Deadlocks verhindert und erlaubt Programmteile einfach zu komponieren. In einer vorherigen Arbeit haben wir bereits eine Haskell-Version als Alternative zur existierenden lowlevel GHC-Bibliothek implementiert, die das optimistische verify-und-commit Konzept durch da...
متن کاملRobust distributed software transactions for Haskell
This thesis motivates and develops a robust distributed Software Transactional Memory (STM) library for Haskell. Many real-life applications are distributed by nature. They either control geographically wide spread hardware resources or utilize redundant hardware components to minimize system failure. STM is an abstraction for synchronizing shared resources in concurrent applications. It helps ...
متن کاملA Haskell-Implementation of STM Haskell with Early Conflict Detection
Software transactional memory treats operations on the shared memory in concurrent programs like data base transactions. STM Haskell integrates this approach in Haskell and provides combinators to build software transactions in a composable way. In previous work we introduced the process calculus CSHF as a formal model for a concurrent implementation of software transactional memory in Concurre...
متن کامل